home *** CD-ROM | disk | FTP | other *** search
- /* AOMPanelManager.c */
- /*
- * AddressOMatic Sample
- * AOMPanelManager.c
- * Copyright © 1993 Apple Computer Inc. All rights reserved.
- */
- #include "AddressOMaticPrivate.h"
-
- /*
- * This is a jacket function for SDPNewPanel.
- */
- OSErr
- _AOMPanelCreate(
- register AddressOMaticPtr aomPtr,
- const RStringPtr *typesList, /* Types to select */
- unsigned long typeCount, /* Number of types */
- const PackedRLI *initialRLI, /* Initial selection */
- DirEnumChoices enumFlags, /* Enumeration flags */
- DirMatchWith matchTypeHow, /* Enumeration mode */
- short helpResourceID, /* Help strings */
- SDPPanelHandle *panelHandlePtr /* The panel handle */
- )
- {
- OSErr status;
-
- status = SDPNewPanel(
- panelHandlePtr, /* Result */
- AOM.window, /* In this window */
- &RECT(kAOMSDPPanelItem), /* Bounds */
- FALSE, FALSE, /* Initially invisible */
- initialRLI, /* Anything preselected */
- typesList, /* Types to browse */
- typeCount, /* Number of types */
- AOM.identity, /* User identity */
- enumFlags, /* What to look for */
- matchTypeHow, /* Understand typeList */
- (long) aomPtr /* RefCon -> AOM */
- );
- LOG(status, "\pSDPNewPanel");
- if (status == noErr && helpResourceID != 0) {
- status = SDPSetPanelBalloonHelp(
- *panelHandlePtr,
- helpResourceID
- );
- LOG(status, "\pSDPSetPanelBalloonHelp");
- }
- if (status == noErr) {
- status = SDPInstallPanelBusyProc(
- *panelHandlePtr,
- _AOMAnimatePanel
- );
- }
- return (status);
- }
-
- OSErr
- _AOMPanelDispose(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle
- )
- {
- #pragma unused (aomPtr)
- OSErr status;
-
- if (panelHandle == NULL)
- status = noErr;
- else {
- status = SDPDisposePanel(panelHandle);
- }
- return (status);
- }
-
- OSErr
- _AOMPanelShow(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle,
- Boolean isShow
- )
- {
- #pragma unused (aomPtr)
- OSErr status;
-
- status = (isShow)
- ? SDPShowPanel(panelHandle)
- : SDPHidePanel(panelHandle);
- LOG(status, "\pSDPShow/HidePanel");
- return (status);
- }
-
- OSErr
- _AOMPanelEnable(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle,
- Boolean isEnable
- )
- {
- #pragma unused (aomPtr)
- OSErr status;
-
- status = SDPEnablePanel(panelHandle, isEnable);
- LOG(status, "\pSDPEnablePanel");
- return (status);
- }
-
- OSErr
- _AOMPanelSetFocus(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle,
- Boolean hasFocus
- )
- {
- #pragma unused (aomPtr)
- OSErr status;
-
- status = SDPSetFocus(panelHandle, hasFocus);
- LOG(status, "\pSDPSetFocus");
- return (status);
- }
-
- OSErr
- _AOMPanelUpdate(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle,
- RgnHandle drawRgn
- )
- {
- #pragma unused (aomPtr)
- OSErr status;
-
- status = SDPUpdatePanel(panelHandle, drawRgn);
- LOG(status, "\pSDPUpdatePanel");
- return (status);
- }
-
- /*
- * This handles all of the selection extraction in one big lump.
- * Returns kOCENoSuchRecord if there is no selection.
- */
- OSErr
- _AOMPanelExtractSelection(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle,
- unsigned short *selectionSize,
- PackedDSSpecPtr *dsSpec
- )
- {
- #pragma unused (aomPtr)
- OSErr status;
- SDPSelectionState selectionState;
-
- *selectionSize = 0;
- status = SDPGetPanelSelectionState(panelHandle, &selectionState);
- if (status == noErr) {
- if (selectionState == kSDPRecordSelected
- || selectionState == kSDPRecordAliasSelected)
- ; /* We have a record */
- else {
- status = kOCENoSuchRecord; /* Oops, nothing selected */
- }
- }
- if (status == noErr) /* Looking good, get size */
- status = SDPGetPanelSelectionSize(panelHandle, selectionSize);
- if (status == noErr) { /* Allocate selection */
- *dsSpec = (PackedDSSpecPtr) NewPtr(*selectionSize);
- status = MemError();
- }
- if (status == noErr) { /* If ok, get the data */
- status = SDPGetPanelSelection(panelHandle, *dsSpec);
- if (status != noErr) { /* Oops, dump the buffer */
- DisposePtr((Ptr) *dsSpec);
- *selectionSize = 0;
- *dsSpec = NULL;
- }
- }
- LOG(status, "\p_AOMPanelExtractSelection");
- return (status);
- }
-
- void
- _AOMPanelAdjust(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle
- )
- {
- (void) SDPMovePanel(panelHandle, PANEL.left, PANEL.top);
- (void) SDPSizePanel(panelHandle, width(PANEL), height(PANEL));
- }
-
- OSErr
- _AOMPanelSetIdentity(
- register AddressOMaticPtr aomPtr,
- SDPPanelHandle panelHandle,
- AuthIdentity userIdentity
- )
- {
- #pragma unused (aomPtr)
- OSErr status;
-
- if (panelHandle == NULL)
- status = noErr;
- else {
- status = SDPSetIdentity(panelHandle, userIdentity);
- }
- return (status);
- }
-
-
-